#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "lib.h"


int main(int argc, char **argv){
	int tamanhoArquivo, nPalindromos, nPrimos, primos[10000];
	FILE *fp;
	char *buffer;

	/* abre o arquivo de texto */
	fp = fopen("data-t2/wikipedia.txt", "r");

	/* verifica se o arquivo foi aberto */
	if(fp == NULL){
		printf("ERRO: Nao foi possivel abrir o arquivo data-t2/wikipedia.txt!!!\n");
		exit(1);
	}

	/* calcula o tamanho do arquivo */
	fseek(fp, 0, SEEK_END);
	tamanhoArquivo = ftell(fp);

	/* retorna o ponteiro para o inicio do arquivo */
	fseek(fp, 0, SEEK_SET);

	/* aloca o buffer para carregar o arquivo na memoria */
	buffer = (char *)malloc(sizeof(char) * tamanhoArquivo);

	/* carrega o arquivo na memoria */
	fread(buffer, sizeof(char), tamanhoArquivo, fp);

	/* fecha o arquivo */
	fclose(fp);

	/* encontra os 10000 primeiros primos */
	crivoEratostenes(primos, 10000);

	/* processa a particao e retorna o numero de palindromos e de primos */
	processaParticao(buffer, primos, &nPalindromos, &nPrimos);

	/* imprime algumas informacoes do processo e o numero de palindromos encontrados na particao */
	fprintf(stderr, 
		"Encontrou %d palindromos e %d primos.\n",
		nPalindromos,
		nPrimos);

	/* desaloca o buffer */
	free(buffer);

	return 0;
}
